package com.itlong.cloud.inspect;

import com.itlong.cloud.POJO.DTO.property.PropertyInspectOperateDTO;
import com.itlong.cloud.POJO.VO.property.PropertyInspectOperateVO;
import com.itlong.cloud.utils.page.Page;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * <desc>
 *     巡检操作接口暴露
 * </desc>
 *
 * @createDate 2019/12/26
 */
@FeignClient(name = "data-statistics-service")
public interface IPropertyInspectOperateServiceClient {

    /**
     * <desc>
     *      列表查询历史数据信息
     * </desc>
     *
     * @return 列表数据
     * @author wangzhi
     * @createDate 2019/12/26
     */
    @PostMapping(path = "property/inspect/operate/getHistoricalDataPage")
    Page<PropertyInspectOperateVO> getHistoricalDataPage(@RequestBody PropertyInspectOperateDTO propertyInspectOperateDTO) throws Exception;

    /**
     * <desc>
     *      列表查询巡检报告数据信息
     * </desc>
     *
     * @return 列表数据
     * @author wangzhi
     * @createDate 2019/12/30
     */
    @PostMapping(path = "property/inspect/operate/getReportPage")
    Page<PropertyInspectOperateVO> getReportPage(@RequestBody PropertyInspectOperateDTO propertyInspectOperateDTO) throws Exception;

    /**
     * <desc>
     *      查询统计数据信息
     * </desc>
     *
     * @return 统计数据信息
     * @author wangzhi
     * @createDate 2020/01/02
     */
    @PostMapping(path = "property/inspect/operate/getStatisticsData")
    List<PropertyInspectOperateVO> getStatisticsData(@RequestBody PropertyInspectOperateDTO propertyInspectOperateDTO) throws Exception;

    /**
     * <desc>
     *      巡检日历列表查询
     * </desc>
     *
     * @return 巡检日历列表
     * @author wangzhi
     * @createDate 2020/01/06
     */
    @PostMapping(path = "property/inspect/operate/getCalendarPage")
    Page<PropertyInspectOperateVO> getCalendarPage(@RequestBody PropertyInspectOperateDTO propertyInspectOperateDTO) throws Exception;

    /**
     * <desc>
     *      查看巡检日历数据信息详情
     * </desc>
     *
     * @return 巡检日历数据信息详情
     * @author wangzhi
     * @createDate 2020/01/06
     */
    @PostMapping(path = "property/inspect/operate/getCalendarDetails")
    Page<PropertyInspectOperateVO> getCalendarDetails(@RequestBody PropertyInspectOperateDTO propertyInspectOperateDTO) throws Exception;

    /**
     * <desc>
     *      报警数据列表查询
     * </desc>
     *
     * @return 报警数据列表
     * @author wangzhi
     * @createDate 2020/01/07
     */
    @PostMapping(path = "property/inspect/operate/getAlarmPage")
    Page<PropertyInspectOperateVO> getAlarmPage(@RequestBody PropertyInspectOperateDTO propertyInspectOperateDTO) throws Exception;
}
